当 ActiveX 控件不可见时,VBA 写入单元格的速度缓慢

您所在的位置:网站首页 excel vba保存慢 当 ActiveX 控件不可见时,VBA 写入单元格的速度缓慢

当 ActiveX 控件不可见时,VBA 写入单元格的速度缓慢

2024-07-12 01:53| 来源: 网络整理| 查看: 265

当许多 ActiveX 控件在Excel 2016中不可见时,VBA 代码会缓慢写入单元格 项目06/06/2024 适用于: Excel for Microsoft 365, Excel 2019, Excel 2016 症状

请考虑以下情况:

你使用的是 Microsoft 365 专属 Excel、Excel 2016 或更高版本。 工作表包含许多设置为不可见的 ActiveX 控件。 你有一个 VBA 代码,可以将许多公式写入单元格。

在此方案中,运行 VBA 代码时,Excel 会非常缓慢地写入单元格。

示例

在Excel 2016工作表中,创建 105 个 ActiveX 控件作为选项按钮。

将选项按钮的 Visible 属性设置为 False。

运行以下 VBA 代码:

For row = 1 To 20000 For col = 1 To 5 Cells(row, col).Formula = "=Func()" Next Next

你注意到,此代码的运行速度比早期版本的 Excel 慢得多。

原因

出现此问题的原因是 Excel 中的设计更改。 由于此更改,当 VBA 代码将公式写入单元格时,会发生以下行为:

Excel 使不可见的 ActiveX 控件可见。 VBA 代码将公式写入单元格。 Excel 使 ActiveX 控件再次不可见。 解决方法

若要解决此问题,请使用以下某种方法:

查看代码和体系结构,并重新评估是否需要尽可能多的 ActiveX 控件。 将 ActiveX 控件替换为受影响的工作簿中的窗体控件。 暂时使 ActiveX 控件在代码运行时可见。

注意

如果工作表中有许多 Shape 对象,则使用解决方法后,VBA 代码可能仍运行缓慢。 在这种情况下,请删除 Shape 对象。

状态

Microsoft 已确认,这是“适用于”部分中列出的产品中的问题。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3